The present invention is a computer software method for administering batch jobs, and more specifically scheduling, initializing, dispatching, and executing batch jobs. Preferably, the batch jobs are written as Java applications, and the batch jobs may be located on a local computer or distributed across an enterprise-wide computing system.
A batch job (also referred to as a batch program) is a computer software application (i.e., program) for performing some repetitive, low priority task that typically requires no direct external input (i.e., non-interactive, non-conversational). Common examples of batch jobs include report generation (e.g., daily, weekly, monthly reports) and data updating, backup, and sorting. Batch job administration is the scheduling, execution, etc. of batch jobs on a computer or network with minimal user supervision.
Batch jobs may be written in a variety of computer languages such as Cobol, Natural, SQL, C, C+, C++, etc. The choice of the language used to implement the batch job is heavily influenced by the resources and information required by the job during execution. For example, a batch job producing reports to show activity and modifications of customer information in a database likely would be implemented in SQL. Thus, batch jobs are often tightly coupled to the components and services that process them, thereby making it difficult to reuse the batch job in a different domain (i.e., platform) without substantial modification and rewriting. The present invention addresses this need for code reuse and platform independence by encapsulating batch jobs and providing a uniform application programming interface (API) for components and services processing the jobs.